package com.dkm.nettysocketdemo.myWebsite.action;

import com.dkm.nettysocketdemo.myWebsite.domain.HelmetTask;
import com.dkm.nettysocketdemo.myWebsite.service.HelmetTaskService;
import com.dkm.nettysocketdemo.untils.Message;
import com.dkm.nettysocketdemo.untils.jwt.login.UserLoginToken;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 *  @ClassName : HelmetTaskAction  //类名
 *  @Description : 任务控制器  //描述
 *  @Author : 石智诚  //作者
 *  @Date: 2021-03-15 11:23  //时间
 */
@RequestMapping("/HelmetTaskAction")
@RestController
public class HelmetTaskAction {
    /**
     * 客户服务接口
     */
    @Resource
    HelmetTaskService helmetTaskService;

    /**
     * 查询所有任务
     * @param startTime  开始时间
     * @param endTime 结束时间
     * @param task 任务模型
     * @param page 页数
     * @param limit 数量
     * @return Message
     */
    @UserLoginToken
    @GetMapping("taskFindAll")
     public Message taskFindAll(String startTime, String endTime, HelmetTask task,Integer page,Integer limit){
         Message message = new Message();
         List<HelmetTask> all = helmetTaskService.findAll(startTime, endTime, task, page, limit);
         Integer count = helmetTaskService.rowCount(startTime, endTime, task);
         message.setCode(200);
         message.setCount(count);
         message.setData(all);
         return message;
    }

    /**
     * 增加任务
     * @param task 任务模型
     * @return Message
     */
    @UserLoginToken
    @PostMapping("taskAdd")
    public Message taskAdd(@RequestBody HelmetTask task){
        Date date = new Date();
        Message message = new Message();
        int selective = helmetTaskService.insertSelective(task);
        message.setCode(200);
        message.setData(selective);
        if (selective>=1){
            message.setMsg("增加成功");
        }else{
            message.setMsg("增加失败");
        }
        return  message;
        }

    /**
     * 任务更新
      * @param task 任务模型
     * @return Message
     */
    @UserLoginToken
    @PostMapping("taskUpdate")
    public Message taskUpdate(HelmetTask task){
        Message message = new Message();
        int selective = helmetTaskService.updateByPrimaryKeySelective(task);
        message.setCode(200);
        message.setData(selective);
        if (selective>=1){
            message.setMsg("更新成功");
        }else{
            message.setMsg("更新失败");
        }
        return  message;
    }

    /**
     *  删除 任务
     * @param pkTaskId 任务id
     * @return Message
     */
    @UserLoginToken
    @DeleteMapping("taskDeleteById/{pkTaskId}")
    public Message taskDeleteById(@PathVariable("pkTaskId") String pkTaskId){
        Message message = new Message();
        int selective = helmetTaskService.deleteByPrimaryKey(pkTaskId);
        message.setCode(200);
        message.setData(selective);
        if (selective>=1){
            message.setMsg("删除成功");
        }else{
            message.setMsg("删除失败");
        }
        return message;
    }


    /**
     * 日期格式化
     * @param binder 服务器参数转换器
     */
    @InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // true:允许输入空值，false:不能为空值
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    }
    }
